f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
↳ QTRS
↳ AAECC Innermost
f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x, y) → f(gt(x, y), x, round(s(y)))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
F(true, x, y) → ROUND(s(y))
GT(s(u), s(v)) → GT(u, v)
F(true, x, y) → GT(x, y)
ROUND(s(s(x))) → ROUND(x)
F(true, x, y) → F(gt(x, y), x, round(s(y)))
f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
F(true, x, y) → ROUND(s(y))
GT(s(u), s(v)) → GT(u, v)
F(true, x, y) → GT(x, y)
ROUND(s(s(x))) → ROUND(x)
F(true, x, y) → F(gt(x, y), x, round(s(y)))
f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
GT(s(u), s(v)) → GT(u, v)
f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
GT(s(u), s(v)) → GT(u, v)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
GT(s(u), s(v)) → GT(u, v)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
ROUND(s(s(x))) → ROUND(x)
f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
ROUND(s(s(x))) → ROUND(x)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
ROUND(s(s(x))) → ROUND(x)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
F(true, x, y) → F(gt(x, y), x, round(s(y)))
f(true, x, y) → f(gt(x, y), x, round(s(y)))
round(0) → 0
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
F(true, x, y) → F(gt(x, y), x, round(s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
round(0) → 0
f(true, x0, x1)
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
f(true, x0, x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
F(true, x, y) → F(gt(x, y), x, round(s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
round(0) → 0
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
(1) (F(gt(x0, x1), x0, round(s(x1)))=F(true, x2, x3) ⇒ F(true, x0, x1)≥F(gt(x0, x1), x0, round(s(x1))))
(2) (gt(x0, x1)=true ⇒ F(true, x0, x1)≥F(gt(x0, x1), x0, round(s(x1))))
(3) (true=true ⇒ F(true, s(x5), 0)≥F(gt(s(x5), 0), s(x5), round(s(0))))
(4) (gt(x6, x7)=true∧(gt(x6, x7)=true ⇒ F(true, x6, x7)≥F(gt(x6, x7), x6, round(s(x7)))) ⇒ F(true, s(x6), s(x7))≥F(gt(s(x6), s(x7)), s(x6), round(s(s(x7)))))
(5) (F(true, s(x5), 0)≥F(gt(s(x5), 0), s(x5), round(s(0))))
(6) (F(true, x6, x7)≥F(gt(x6, x7), x6, round(s(x7))) ⇒ F(true, s(x6), s(x7))≥F(gt(s(x6), s(x7)), s(x6), round(s(s(x7)))))
POL(0) = 0
POL(F(x1, x2, x3)) = -1 - x1 + x2 - x3
POL(c) = -1
POL(false) = 1
POL(gt(x1, x2)) = 1
POL(round(x1)) = x1
POL(s(x1)) = 1 + x1
POL(true) = 1
The following pairs are in Pbound:
F(true, x, y) → F(gt(x, y), x, round(s(y)))
The following rules are usable:
F(true, x, y) → F(gt(x, y), x, round(s(y)))
false → gt(0, v)
gt(u, v) → gt(s(u), s(v))
true → gt(s(u), 0)
s(s(round(x))) → round(s(s(x)))
s(s(0)) → round(s(0))
0 → round(0)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ QDP
↳ PisEmptyProof
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
round(s(0)) → s(s(0))
round(s(s(x))) → s(s(round(x)))
round(0) → 0
round(0)
round(s(0))
round(s(s(x0)))
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))